<?php defined('SYSPATH') OR die('No direct access allowed.');

/**
 * Контроллер для функциональности, связанной с друзьями
 *
 * @author Михаил Елфимов (www.elfimov.com)
 */

class Friends_Controller extends Controller {
	
	protected $requireAuth = TRUE;
	
	/**
	 * Показывает список друзей авторизованного пользователя из БД. Если в БД их нет - сначала импортирует.
	 */
	public function index() {
		$authUserId = fb::instance()->require_login();
		
		$dbUser = ORM::factory('user', $authUserId);
		
		if (!$dbUser->loaded) {
			$dbUser = self::importUser($authUserId);
		}

		$this->template->content = new View('friends');
		$this->template->title = 'Друзья';

		$this->template->content->authUser = $dbUser;
	}
	
	/**
	 * Получает информацию об авторизованном пользователе и список его друзей, сохраняем в БД
	 *
	 * @param string $userId Идентификатор пользователя
	 * @return Object Созданный объект пользователя
	 */
	protected static function importUser($userId) {
		$userInfo = fb::getUserInfo($userId);
		$friends = fb::getFriends($userId);
		
		$dbUser = User_Model::create($userInfo['uid'], $userInfo['name'], $userInfo['profile_url'], date::birthday2age($userInfo['birthday_date']));
		
		$friends_ids = array();
		foreach ($friends as $friend) {
			User_Model::create($friend['uid'], $friend['name'], $friend['profile_url'], date::birthday2age($friend['birthday_date']));
			Friend_Model::create($userId, $friend['uid']);
		}

		return $dbUser;
	}
	
}	// Friends_Controller
